package com.bobi.ecofavor.service.impl;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bobi.ecofavor.model.domain.Store;
import com.bobi.ecofavor.mapper.StoreMapper;
import com.bobi.ecofavor.model.dto.PageDTO;
import com.bobi.ecofavor.service.StoreService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.io.Serializable;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.List;

/**
 * <p>
 * 店铺 服务实现类
 * </p>
 *
 * @author wenyuan
 * @since 2023-10-21
 */
@Service
public class StoreServiceImpl extends ServiceImpl<StoreMapper, Store> implements StoreService {

    @Autowired
    private StoreMapper storeMapper;


//      根据store的id 查询store中的信息  和所属商品信息
    @Override
    public Store getByStoreId(Integer id) {
        Store store = storeMapper.selectByStoreId(id);
        return store;
    }

    // 查询
    @Override
    public List<Store> getStoreByUserId(Integer userId) {
        List<Store> stores = storeMapper.selectByStoreIds(userId);
        return stores;
    }

    @Override
    public Integer insertOil(Store store) {
        Integer stores=storeMapper.insertOil(store);
        return stores;
    }

    @Override
    public List<Store> selectStoreByType(Store store) {
        List<Store> stores = storeMapper.selectByStoreType(store);
        return stores;
    }


    //获取store中的全部数据
    @Override
    public List<Store> getByStoreAll(Store store) {
        List<Store> stores = storeMapper.selectStoreAll(store);
        List<Store> stores1 = storeMapper.selectDistance(store);

        for (Store store1:stores){
            Integer id1 = store1.getId();
            double distance1 = store1.getDistance();
            for (Store store2:stores1) {
                Integer id2 = store2.getId();
                double distance2 = store2.getDistance();
                if (id1 == id2) {
                    distance1 = distance2;
                    store1.setDistance(distance1);
                }
            }
        }
        return stores;
    }

    // 拿到 全部距离
    @Override
    public List<Store> getDistance(Store store) {
        List<Store> stores = storeMapper.selectDistance(store);
        return stores;
    }
   // 获取根据名字store表中全部数据
    @Override
    public List<Store> getStoreByStoreName(Store storeName) {
        List<Store> stores = storeMapper.selectByStoreName(storeName);
        return stores;
    }


//    @Override
//    public Page<Store> pageList(PageDTO pageDTO, Store store) {
//        Page<Store> page = new Page<>(pageDTO.getPageNo(),pageDTO.getPageSize());
//        page = storeMapper.selectPageList(page,store);
//        return page;
//    }

}
